package com.factory._17memento.demo2;

/**
 * 发起人：
 * 责任：
 * 创建一个含有当前内部状态的备忘录对象
 * 使用备忘录对象存储器内部对象
 * @author Qinye
 * @date 2023/8/13 18:23
 */
public class Originator2 {
    private String state;
    // 工厂方式： 返回一个备忘录对象
    public MementoIF createMemento(){
        return new Memento(state);
    }

    // 将发起人回复到备忘录对象所记录的状态
    public void restoreMemento(MementoIF memento) {
        this.state =((Memento) memento).getState();
    }
    public String getState(){
        return state;
    }

    public void setState(String state) {
        this.state = state;
        System.out.println("当前状态之： "+state);
    }
    protected static class Memento  implements  MementoIF{
        private String state;
        public Memento(String state) {
            this.state=state;
        }

        public String getState() {
            return state;
        }

        public void setState(String state) {
            this.state = state;
        }
    }

}
